perm filename GEN.MS[MEW,AIL] blob
sn#091955 filedate 1974-03-19 generic text, type T, neo UTF8
1) GEN vs. 2) GEN[S,AIL] SRCCOM 03-19-74 02:06 PAGES 1,1
******** GEN **** PAGE 1
1) COMMENT ⊗ VALID 00059 PAGES VERSION 17-1(171)
1) RECORD PAGE DESCRIPTION
1) 00001 00001
1) 00011 00002 HISTORY
1) 00028 00003 LSTON (GEN)
1) 00036 00004 TABLEDATA (EXEC ROUTINES -- GLOBAL VARIABLES)
1) 00041 00005 TABCONDATA (EXEC ROUTINES -- GLOBAL VARIABLES)
1) 00044 00006 DSCR GENINI
1) 00048 00007 DSCR GETOP, GETADL, GETAD
1) 00050 00008 DSCR -- SAIL DECLARATION EXECS
1) 00055 00009 DSCR TYPSET, VALSET, XOWSET, etc.
1) 00058 00010 DSCR TCON, BTRU, BFAL, BNUL, BINF
1) 00061 00011 DSCR TWID10, ECHK, ESET
1) 00064 00012 DSCR DWN, BLOCK, BLNAME, ENTID, UP, NAMCHK, etc.
1) 00072 00013 ↑ENTID:
1) 00078 00014
1) 00084 00015 Check for match on block names.
1) 00085 00016 DSCR RQ00, RQSET, SRCSWT
1) 00090 00017
1) 00092 00018
1) 00097 00019
1) 00100 00020 ↑SRCSWT:
1) 00101 00021 DSCR DFPREP, DCPREP, DWPREP, DFPINS, DFSET, DFENT, MACOFF, MACON
1) 00114 00022 DSCR STCAT
1) 00125 00023 DSCR DCLNT1,DCLNT2
1) 00131 00024 DSCR CNDRCY, CNDRCN, CNDRCP
1) 00138 00025 DSCR LETSET, LETENT
1) 00141 00026 DSCR TWCOND,SWICHP,SWPOFF,PSWICH,OKEOF
1) 00149 00027 ↑SETWHL: EXCH SP,STPSAV GET STRING POINTER
1) 00162 00028 SUBTTL EXECS for Entry Declaration
1) 00164 00029 DSCR ALOT
1) 00169 00030 ↑ALOT: ROUTINE TO HANDLE ALLOCATION
1) 00173 00031
1) 00177 00032 BAIL <
1) 00183 00033
1) 00188 00034 Comment
1) 00194 00035 NOSY: PUSHJ P,URGSTR IF ON STRING RING....
1) 00203 00036 LOADER BLOCK FOR POLISH FIXUP
1) 00205 00037 DSCR PDOUT
1) 00212 00038 DOLVIN: PUSH P,PNT2
1) 00214 00039 ROUTINE TO PUT OUT LOCAL VAR INFO -- USED BY DIS
1) 00220 00040 %AA% -- SDFLTS
1) 00221 00041 Allo -- Allocate One Type of Symbol
1) 00226 00042 ROUTINE TO ALLOCATE SPACE FOR TEMP CELLS AND TO OUTPUT
1) 00230 00043 REQINI -- USER REQUIRED INITIALIZTIONS
1) 00235 00044 DSCR DONES
1) 00238 00045
1) GEN vs. 2) GEN[S,AIL] SRCCOM 03-19-74 02:06 PAGES 1,1
1) 00244 00046 REN <
1) 00246 00047
1) 00250 00048
1) 00255 00049 MEMORY and LOCATION EXECS, ALSO UINCLL
1) 00258 00050 DSCR MAKBUK, FREBUK
1) 00260 00051 BEGIN ERRORS
1) 00266 00052 DSCR SCNBAK,POPBAK,KILPOP,QREM2,QTYPCK
1) 00271 00053 DSCR UNDEC -- Undeclared identifiers
1) 00277 00054 DSCR QDEC0,1,2 QARSUB QARDEC QPARM QPRDEC
1) 00284 00055 BEGIN SCOMM
1) 00285 00056 BEGIN INLINE
1) 00287 00057 DSCR CODNIT, WRDNIT, ONEWRD, SETSIX, SETOP, CODIND, CODREG, etc.
1) 00295 00058 ↑CESSGO:MOVE TEMP,OPDUN SAVING OPDUN
1) 00301 00059 BEGIN COUNT
1) 00304 ENDMK
1) ⊗;
1) COMMENT ⊗HISTORY
1) AUTHOR,REASON
1) 021 102100000253 ⊗;
1) COMMENT ⊗
1) VERSION 17-1(171) 3-17-74 BY RLS INSTALL TENEX
1) VERSION 17-1(170) 3-16-74 BY RHT BUG #RN# PROTECT_ACS LOSSAGE
*** GEN[S,AIL] *** PAGE 1
2) COMMENT ⊗ VALID 00059 PAGES VERSION 17-1(170)
2) RECORD PAGE DESCRIPTION
2) 00001 00001
2) 00006 00002 HISTORY
2) 00023 00003 LSTON (GEN)
2) 00031 00004 TABLEDATA (EXEC ROUTINES -- GLOBAL VARIABLES)
2) 00036 00005 TABCONDATA (EXEC ROUTINES -- GLOBAL VARIABLES)
2) 00039 00006 DSCR GENINI
2) 00043 00007 DSCR GETOP, GETADL, GETAD
2) 00045 00008 DSCR -- SAIL DECLARATION EXECS
2) 00050 00009 DSCR TYPSET, VALSET, XOWSET, etc.
2) 00053 00010 DSCR TCON, BTRU, BFAL, BNUL, BINF
2) 00056 00011 DSCR TWID10, ECHK, ESET
2) 00059 00012 DSCR DWN, BLOCK, BLNAME, ENTID, UP, NAMCHK, etc.
2) 00067 00013 ↑ENTID:
2) 00073 00014
2) 00079 00015 Check for match on block names.
2) 00080 00016 DSCR RQ00, RQSET, SRCSWT
2) 00085 00017
2) 00087 00018
2) 00092 00019
2) 00095 00020 ↑SRCSWT:
2) 00096 00021 DSCR DFPREP, DCPREP, DWPREP, DFPINS, DFSET, DFENT, MACOFF, MACON
2) 00109 00022 DSCR STCAT
2) 00120 00023 DSCR DCLNT1,DCLNT2
1) GEN vs. 2) GEN[S,AIL] SRCCOM 03-19-74 02:06 PAGES 1,1
2) 00126 00024 DSCR CNDRCY, CNDRCN, CNDRCP
2) 00133 00025 DSCR LETSET, LETENT
2) 00136 00026 DSCR TWCOND,SWICHP,SWPOFF,PSWICH,OKEOF
2) 00144 00027 ↑SETWHL: EXCH SP,STPSAV GET STRING POINTER
2) 00157 00028 SUBTTL EXECS for Entry Declaration
2) 00159 00029 DSCR ALOT
2) 00164 00030 ↑ALOT: ROUTINE TO HANDLE ALLOCATION
2) 00168 00031
2) 00172 00032 BAIL <
2) 00178 00033
2) 00183 00034 Comment
2) 00189 00035 NOSY: PUSHJ P,URGSTR IF ON STRING RING....
2) 00198 00036 LOADER BLOCK FOR POLISH FIXUP
2) 00200 00037 DSCR PDOUT
2) 00207 00038 DOLVIN: PUSH P,PNT2
2) 00209 00039 ROUTINE TO PUT OUT LOCAL VAR INFO -- USED BY DIS
2) 00215 00040 %AA% -- SDFLTS
2) 00216 00041 Allo -- Allocate One Type of Symbol
2) 00221 00042 ROUTINE TO ALLOCATE SPACE FOR TEMP CELLS AND TO OUTPUT
2) 00225 00043 REQINI -- USER REQUIRED INITIALIZTIONS
2) 00230 00044 DSCR DONES
2) 00233 00045
2) 00238 00046 REN <
2) 00240 00047
2) 00244 00048
2) 00249 00049 MEMORY and LOCATION EXECS, ALSO UINCLL
2) 00252 00050 DSCR MAKBUK, FREBUK
2) 00254 00051 BEGIN ERRORS
2) 00260 00052 DSCR SCNBAK,POPBAK,KILPOP,QREM2,QTYPCK
2) 00265 00053 DSCR UNDEC -- Undeclared identifiers
2) 00271 00054 DSCR QDEC0,1,2 QARSUB QARDEC QPARM QPRDEC
2) 00278 00055 BEGIN SCOMM
2) 00279 00056 BEGIN INLINE
2) 00281 00057 DSCR CODNIT, WRDNIT, ONEWRD, SETSIX, SETOP, CODIND, CODREG, etc.
2) 00287 00058 ↑CESSGO:MOVE TEMP,OPDUN SAVING OPDUN
2) 00293 00059 BEGIN COUNT
2) 00296 ENDMK
2) ⊗;
2) COMMENT ⊗HISTORY
2) AUTHOR,REASON
2) 021 102100000252 ⊗;
2) COMMENT ⊗
2) VERSION 17-1(170) 3-16-74 BY RHT BUG #RN# PROTECT_ACS LOSSAGE
******** GEN **** PAGE 6
1) ;No RAID on TENEX and $M causes UNDEF GLOBAL loading errors
1) NOTENX <
1) GEN vs. 2) GEN[S,AIL] SRCCOM 03-19-74 02:06 PAGES 6,6
1) IFN FTDEBUG <
1) MOVE TEMP,BITABLE
1) EXTERNAL $M
1) MOVEM TEMP,$M+3 ;RAID LOC
1) >;IFN FTDEBUG
1) >;NOTENX
1) ; ***** THIS CODE MOVED TO LEAP
*** GEN[S,AIL] *** PAGE 6
2) IFN FTDEBUG <
2) MOVE TEMP,BITABLE
2) EXTERNAL $M
2) MOVEM TEMP,$M+3 ;RAID LOC
2) >
2) ; ***** THIS CODE MOVED TO LEAP
******** GEN **** PAGE 26
1) ;; #RA# (1 OF 1)
1) SETOM EOFCEL ;
1) POPJ P, ; BUT SCANNER SOMETIMES HAS TO TURN IT OFF
*** GEN[S,AIL] *** PAGE 26
2) ;; #RA# (1 OF 1) !
2) SETOM EOFCEL ;
2) POPJ P, ; BUT SCANNER SOMETIMES HAS TO TURN IT OFF
******** GEN **** PAGE 29
1) THSLVL: 0
1) ENDDATA
*** GEN[S,AIL] *** PAGE 29
2) ENDDATA
******** GEN **** PAGE 30
1) MOVEM TEMP,THSLVL
1) HRRZ LPSA,ADRTAB ;ADDRESS CONSTANTS.
*** GEN[S,AIL] *** PAGE 30
2) MOVEM TEMP,THSLVL#
2) HRRZ LPSA,ADRTAB ;ADDRESS CONSTANTS.
******** GEN **** PAGE 35
1) IMSSS<
1) TRNE TBITS,ITEM ;IS IT AN ITEM AT IMSSS?
1) TLO A,400000 ;YES, TURN OFF PRINTOUT DDT
1) >;IMSSS
1) TRNE TBITS,ITEM
*** GEN[S,AIL] *** PAGE 35
1) GEN vs. 2) GEN[S,AIL] SRCCOM 03-19-74 02:06 PAGES 35,35
2) TRNE TBITS,ITEM
******** GEN **** PAGE 45
1) NOTENX <
1) MOVEI TBITS2,LSTCDB ;GET FILE NAME
1) MOVE A,CFIL(TBITS2)
1) >;NOTENX
1) TENX <;WE WANT THE SIXBIT NAME OF THE LST FILE IN AC A
1) ZERODATA
1) LISFLN: BLOCK 11
1) ENDDATA
1) PUSH P,B
1) PUSH P,C
1) PUSH P,D
1) HRROI A,LISFLN
1) HRRZ B,LISJFN ;SET UP IN CC
1) MOVSI C,002000 ;PRINT NAME ONLY
1) JSYS JFNS ;GET THE NAME
1) MOVEI C,6
1) SETZ A, ;ACCUMULATE SIXBIT HERE
1) MOVE B,[POINT 7,LISFLN,-1]
1) SIXLUP: ILDB D,B ;GET A BYTE
1) SKIPE D
1) SUBI D,40 ;CONVERT TO SIXBIT
1) LSH A,=6 ;MOVE OVER
1) ADD A,D ;ADD IN
1) SOJG C,SIXLUP
1) POP P,D
1) POP P,C
1) POP P,B
1) >;TENX
1) TLZ FF,RELOC ;DON'T RELOCATE IT
*** GEN[S,AIL] *** PAGE 45
2) MOVEI TBITS2,LSTCDB ;GET FILE NAME
2) MOVE A,CFIL(TBITS2)
2) TLZ FF,RELOC ;DON'T RELOCATE IT
******** GEN **** PAGE 53
1) ZERODATA
1) ↑↑QQFLAG:0
1) ↑↑QQBLK: 0
1) ENDDATA
1) DSCR QDEC0,1,2 QARSUB QARDEC QPARM QPRDEC;
*** GEN[S,AIL] *** PAGE 53
2) ↑↑QQFLAG:0
2) ↑↑QQBLK: 0
1) GEN vs. 2) GEN[S,AIL] SRCCOM 03-19-74 02:06 PAGES 53,53
2) DSCR QDEC0,1,2 QARSUB QARDEC QPARM QPRDEC;
******** GEN **** PAGE 56
1) NOTENX <
1) TNAME: OPNAME
1) 'OPS '
1) TWORD3: 0
1) TPPN: OPPPN
1) >;NOTENX
1) ENDDATA
*** GEN[S,AIL] *** PAGE 56
2) TNAME: OPNAME
2) 'OPS '
2) TWORD3: 0
2) TPPN: OPPPN
2) ENDDATA
******** GEN **** PAGE 57
1) NOTENX <
1) SKIPE B,INSTBL ;TABLE IN CORE?
*** GEN[S,AIL] *** PAGE 57
2) SKIPE B,INSTBL ;TABLE IN CORE?
******** GEN **** PAGE 57
1) >;NOTENX
1) TENX<
1) SKIPE INSTBL ;TABLE READ IN?
1) JRST TABLIN ;YES
1) PUSH P,A
1) HRROI B,[OPFILE]
1) HRLZI A,100001 ;OLD FILE, SHORT FORM
1) JSYS GTJFN
1) ERR <CAN'T FIND OPFILE>
1)
1) HRLI A,400000 ;XWD FORK, JFN
1) JSYS GET ;OPFILE IS SSHARED
1) SETOM INSTBL ;MARK THAT THE TABLE IS HERE
1) POP P,A
1) >;TENX
1) TABLIN:
1) Comment ⊗
1) B pnts to current table entry (LH IS -COUNT)
1) A is soon be sixbit for OPcode being sought
1) ⊗
1) NOTENX<
1) GEN vs. 2) GEN[S,AIL] SRCCOM 03-19-74 02:06 PAGES 57,57
1) MOVE D,[CAME A,(B)] ;SET UP QUICK SEARCH LOOP
*** GEN[S,AIL] *** PAGE 57
2) TABLIN:
2) Comment ⊗
2) B pnts to current table entry (LH IS -COUNT)
2) A will soon be sixbit for OPcode being sought
2) ⊗
2) MOVE D,[CAME A,(B)] ;SET UP QUICK SEARCH LOOP
******** GEN **** PAGE 57
1) >;NOTENX
1) TENX<
1) COMMENT !
1) In TENEX, the opcode table is created by MAKTAB.TNX to
1) be a SSAVEd file. It consists of the operations names (in sixbit),
1) their opcodes, in bucket-driven link lists.
1) !
1) OPBUKT←←=307 ;NUMBER OF BUCKETS
1) BUKPAG←←600 ;STARTING PAGE FOR OPTABLE
1) BUKTST←←BUKPAG*1000 ;STARTING ADDR FOR BUCKETS
1) MOVM B,A ;ABS(OPCODE)
1) IDIVI B,OPBUKT ;COMPUTE BUCKET NUMBER IN C
1) MOVE B,BUKTST(C) ;GET BUCKET POINTER
1)
1) TABLI1: CAMN A,(B) ;IS THIS THE RIGHT OPCODE?
1) JRST FNDOPC ;YES
1) SKIPN B,2(B) ;CDR DOWN LIST, ARE WE TO NIL
1) JRST UNFNDOP ;YES, NO MORE
1) JRST TABLI1 ;NO, KEEP GOING
1) FNDOPC: MOVE B,1(B) ;PICK UP THE OPCODE
1) MOVEM B,GENRIG ;STORE FOR A WHILE
1) MOVE TEMP,%OPC ;MARK OPCODE FOUND
1) MOVEM TEMP,PARRIG ;SAVE FOR PARSER
1) UNFNDOP: POPJ P, ;RETURN, ANSWER IN B
1) >;TENX
1) ↑CESSGO:MOVE TEMP,OPDUN ;SAVING OPDUN
*** GEN[S,AIL] *** PAGE 58
2) ↑CESSGO:MOVE TEMP,OPDUN ;SAVING OPDUN
******** GEN **** PAGE 58
1) NOTENX<
1) DPB A,[POINT 9,OPCOD,8] ;OPCOD POSITION
1) >;NOTENX
1) TENX<
1) MOVEM A,OPCOD ;36-BIT OPCODE
1) >;
1) GEN vs. 2) GEN[S,AIL] SRCCOM 03-19-74 02:06 PAGES 58,58
1) POPJ P,
*** GEN[S,AIL] *** PAGE 58
2) DPB A,[POINT 9,OPCOD,8] ;OPCOD POSITION
2) POPJ P,